'\" t
.TH "SYSTEMD\-HALT\&.SERVICE" "8" "" "systemd 249" "systemd-halt.service"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
systemd-halt.service, systemd-poweroff.service, systemd-reboot.service, systemd-kexec.service, systemd-shutdown \- System shutdown logic
.SH "SYNOPSIS"
.PP
systemd\-halt\&.service
.PP
systemd\-poweroff\&.service
.PP
systemd\-reboot\&.service
.PP
systemd\-kexec\&.service
.PP
/usr/lib/systemd/systemd\-shutdown
.PP
/usr/lib/systemd/system\-shutdown/
.SH "DESCRIPTION"
.PP
systemd\-halt\&.service
is a system service that is pulled in by
halt\&.target
and is responsible for the actual system halt\&. Similarly,
systemd\-poweroff\&.service
is pulled in by
poweroff\&.target,
systemd\-reboot\&.service
by
reboot\&.target
and
systemd\-kexec\&.service
by
kexec\&.target
to execute the respective actions\&.
.PP
When these services are run, they ensure that PID 1 is replaced by the
/usr/lib/systemd/systemd\-shutdown
tool which is then responsible for the actual shutdown\&. Before shutting down, this binary will try to unmount all remaining file systems, disable all remaining swap devices, detach all remaining storage devices and kill all remaining processes\&.
.PP
It is necessary to have this code in a separate binary because otherwise rebooting after an upgrade might be broken\ \&\(em the running PID 1 could still depend on libraries which are not available any more, thus keeping the file system busy, which then cannot be re\-mounted read\-only\&.
.PP
Immediately before executing the actual system halt/poweroff/reboot/kexec
systemd\-shutdown
will run all executables in
/usr/lib/systemd/system\-shutdown/
and pass one arguments to them: either
"halt",
"poweroff",
"reboot"
or
"kexec", depending on the chosen action\&. All executables in this directory are executed in parallel, and execution of the action is not continued before all executables finished\&.
.PP
Note that
systemd\-halt\&.service
(and the related units) should never be executed directly\&. Instead, trigger system shutdown with a command such as
"systemctl halt"
or suchlike\&.
.SH "SEE ALSO"
.PP
\fBsystemd\fR(1),
\fBsystemctl\fR(1),
\fBsystemd.special\fR(7),
\fBreboot\fR(2),
\fBsystemd-suspend.service\fR(8),
\fBbootup\fR(7)
